/**
 * 
 */
package ch.zhaw.cctd.domain;

import java.awt.Dimension;
import java.awt.Point;
import java.util.UUID;

/**
 * Interface für alle grafischen Element, die auf dem UI dargestellt werden
 * müssen, mit einer Textur, einer Position, einem Layer und einer Grösse.
 * 
 * 
 * @author Rolf Koch
 * 
 */
public interface GraphicalElement {
	/**
	 * Dimension of the Element
	 * 
	 * @return
	 */
	public Dimension getSize();

	/**
	 * Center Point of the Element
	 * 
	 * @return
	 */
	public Point getCenter();

	/**
	 * Texture as String
	 * 
	 * @return
	 */
	public String getTexture();

	/**
	 * Layer Level of the Element Lower = Deeper
	 * 
	 * @return
	 */
	public int getLayer();

	/**
	 * Top Left Corner of the Element
	 * 
	 * @return
	 */
	public Point getLocation();
	
	/**
	 * ID of the Creep
	 * 
	 * @return
	 */
	public UUID getUniqueId();

}
